﻿--- Eliminar las funciones existentes sin importar el numero ni tipo de parametros
SELECT * FROM "DropFunction_AWIL"('FuncSeguridadLogEventos');
--- crear una nueva funcion
CREATE FUNCTION "FuncSeguridadLogEventos"(
	 IN	"@OP" CHARACTER VARYING(64)
	,IN	"@paramAux" TEXT
	,INOUT	"@id" INTEGER
	,INOUT	"@fechaGrab" timestamp
	,INOUT	"@usuarioGrab" character varying(32)
	,INOUT	"@host"  character varying(128)
	,INOUT	"@evento" character varying(256)
	,INOUT	"@detalle" character varying(2048)
)RETURNS 
	SETOF RECORD
AS $$ 
DECLARE
	Auxiliar TEXT;
BEGIN

	/*SELECT TODOS*/
	IF "@OP"='selectAll' THEN
		RETURN	QUERY
		SELECT	"id","fechaGrab","usuarioGrab","host","evento","detalle"
		FROM	"SeguridadLogEventos";
	RETURN;
	END IF;

	/*INSERTAR NUEVO REGISTRO*/
	IF "@OP"='insert' THEN
		-- Grabo el registro
		INSERT INTO "SeguridadLogEventos" ("usuarioGrab","host","evento","detalle")
		VALUES	 ("@usuarioGrab","@host","@evento","@detalle");
	RETURN;
	END IF;


--- Controlo que se haya digitado el OP correctamente
	IF "@OP" IS NOT NULL THEN
		Auxiliar = 'El OP "' || "@OP" || '" No existe, verifique.';
		RAISE EXCEPTION '%', Auxiliar;
	RETURN;
END IF;
END;
$$ LANGUAGE 'plpgsql';
